using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.Collections.ObjectModel;
using System.Collections;
using System.Configuration;

namespace Barbar.MapReport.Configuration {
  public class MapSettingsSection : ConfigurationSection {
    [ConfigurationProperty("googleKeyProvider", IsRequired = true)]
    public GoogleKeyProviderElement GoogleKeyProvider {
      get { return (GoogleKeyProviderElement)this["googleKeyProvider"]; }
      set { this["googleKeyProvider"] = value; }
    }

    [ConfigurationProperty("zoomLevelProvider")]
    public ZoomLevelProviderElement ZoomLevelProvider {
      get { return (ZoomLevelProviderElement)this["zoomLevelProvider"]; }
      set { this["zoomLevelProvider"] = value; }
    }

    [ConfigurationProperty("regionProvider")]
    public RegionProviderElement RegionProvider {
      get { return (RegionProviderElement)this["regionProvider"]; }
      set { this["regionProvider"] = value; }
    }

    [ConfigurationProperty("regionGeometryProvider")]
    public RegionGeometryProviderElement RegionGeometryProvider {
      get { return (RegionGeometryProviderElement)this["regionGeometryProvider"]; }
      set { this["regionGeometryProvider"] = value; }
    }

    [ConfigurationProperty("handlerUrl", DefaultValue = "/MapResource.ashx", IsRequired = false)]
    public string HandlerUrl {
      get { return (string)this["handlerUrl"]; }
      set { this["handlerUrl"] = value; }
    }
  }
}